/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Fecha;

import javax.swing.JOptionPane;

/**
 *
 * @author A10216382
 */
public class TestFecha {
     public static void main(String[] args) {
       boolean validar=false;// variable que nos servira para las validaciones
       int opcion = 0;
       int Dia = 0;
       int Mes = 0;
       int Año = 0;
       int Dias = 0;
       int bis = 0;
       String Mes1 = "";
       JOptionPane.showMessageDialog(null, "\nBienvenido!!!\n");//mesaje de bienvenida al programa
       
       while(validar==false) {
         String dia= JOptionPane.showInputDialog("\nIntroduzca el dia de la fecha:\n");
          int dia1=Integer.parseInt(dia);
          if (dia1<32 && dia1>0){//validacion de la variable que se encuentre entre este rango
              validar=true;
             Dia=dia1;
              
          }//fin de if
          else{
              JOptionPane.showMessageDialog(null, "ERROR: Introduzca un nuemero entre 1 y 31");//mensaje de error para el usuario
              validar=false;
          }//fin de else
       }//fin de while
       validar=false;
       while(validar==false){
           String mes= JOptionPane.showInputDialog("\nIntroduzca el mes de la fecha:\n");
          int mes1=Integer.parseInt(mes);
          if (mes1<13 && mes1>0){
              validar=true;
              Mes = mes1;
          }//fin de if
          else{
              JOptionPane.showMessageDialog(null, "ERROR: Introduzca un nuemero entre 1 y 12");
              validar=false;
          }//fin de else
       }//fin de while
       validar=false;
       while(validar==false){
           String año= JOptionPane.showInputDialog("\nIntroduzca el año de la fecha:\n");
          int año1=Integer.parseInt(año);
          if (año1<9999 && año1>0){
              validar=true;
             Año=año1;
          }//fin de if
          else{
              JOptionPane.showMessageDialog(null, "ERROR: Introduzca un nuemero entre 1 y 9998");
              validar=false;
          }//fin de else
       }//fin de while
       validar=false;
        
       
       while(validar==false){
            String opstr= JOptionPane.showInputDialog("\nIntroduzca el numero de la opcion del formato\nde fecha a imprimir:\n"
                                                        + "\n1. MM/DD/AA"+
                                                           "\n2.Mes DD, AAAA"
                                                            +"\n3.DDD, AAAA\n");

          int op = Integer.parseInt(opstr);
          if (op<4 && op>0){
              validar=true;
             opcion=op;
          }//fin de if
          else{
              JOptionPane.showMessageDialog(null, "ERROR: Introduzca un nuemero entre 1 y 4");
              validar=false;
         }//fin de else
          
      }//fin de while
       switch (opcion){
           case 1:
              Fecha mifecha = new Fecha(Dia,Mes,Año);
              JOptionPane.showMessageDialog(null, mifecha.ShowFecha());
               break;
               
           case 2:
               switch (Mes){
                   case 1:
                       Mes1="Enero";
                       break;
                   case 2:
                       Mes1="Febrero";
                      break;
                   case 3:
                       Mes1= "Marzo";
                       break;
                   case 4:
                       Mes1="Abril";
                       break;
                   case 5:
                       Mes1="Mayo";
                       break;
                   case 6:
                       Mes1="Junio";
                       break;
                   case 7:
                       Mes1="Julio";
                       break;
                   case 8:
                       Mes1="Agosto";
                       break;
                   case 9:
                       Mes1="Septiembre";
                       break;
                   case 10:
                       Mes1="Octubre";
                       break;
                   case 11:
                       Mes1="Noviembre";
                       break;
                   case 12:
                       Mes1="Diciembre";
                       break;                  
               }//fin de switch mes
               
               Fecha miFecha = new Fecha(Mes1,Dia,Año);
               JOptionPane.showMessageDialog(null, miFecha.showFecha());
               break;
           case 3:
                if (Año%4==0 || (Año%100==0 && Año%400==0)){
                           bis=1;
                       }
                       else{
                           bis = 0;
                       }
                switch (Mes){
                    
                   case 1:
                       Dias= 0;
                       break;
                   case 2:
                       Dias = 31;
                      break;
                   case 3:
                      Dias = 59+bis;
                       break;
                   case 4:
                       Dias = 90+bis;
                       break;
                   case 5:
                       Dias = 120+bis;
                       break;
                   case 6:
                        Dias = 151+bis;
                       break;
                   case 7:
                       Dias = 181+bis;
                       break;
                   case 8:
                       Dias = 212+bis;
                       break;
                   case 9:
                       Dias = 243+bis;
                       break;
                   case 10:
                       Dias = 273+bis;
                       break;
                   case 11:
                       Dias = 304+bis;
                       break;
                   case 12:
                       Dias = 334+bis;
                       break;                  
               }//fin de switch mes
                Dia= Dia+Dias;
                
               Fecha Mifecha = new Fecha(Dia, Año);
               JOptionPane.showMessageDialog(null, Mifecha.shwFecha());
       }//fin de switch opcion
       
       
    }//fin del String args
    
}
